// pages/my/confirmorder/confirmorder.js
// 引入公共工具函数
import numberGeneration from "../../../utils/numberGeneration"
import request from "../../../utils/request"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    wordCount:0,
    selectedElderlyId: '',
    nursingItemDetail: {},
    serviceTime: '',
    selectedElderName: '', // 新增：存储老人姓名,
    orderForm: {}, // 用于存储组合后的订单数据（对应后端实体类）
  },
  onRemarkInput(e) {
    const value = e.detail.value;
    this.setData({
      wordCount: value.length,
      'orderForm.remark': value
    });
  },

  toBack(){
   wx.navigateBack();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const userInfo = wx.getStorageSync('loginUserInfo');
    // 1. 接收参数并解析
    const selectedElderlyId = options.selectedElderlyId || '';
    const selectedElderName = decodeURIComponent(options.selectedElderName || ''); // 解码中文
    const nursingItemStr = decodeURIComponent(options.nursingItemDetail || '{}');
    const serviceTime = options.serviceTime || '';

    // 2. 反序列化对象
    const nursingItemDetail = JSON.parse(nursingItemStr);


    // 2. 组合后端实体类所需字段
    const orderForm = {
      //订单编号
      orderNo:'',
      // 老人外键ID：转为数字类型（对应Java的Long）
      elderlyId: selectedElderlyId ? Number(selectedElderlyId) : null,
      // 护理项目外键ID：从服务详情中取id，转为数字类型（对应Java的Long）
      nursingItemId: nursingItemDetail.id ? Number(nursingItemDetail.id) : null,
      // 订单金额：从服务详情中取price，对应Java的BigDecimal（小程序中保留数字格式即可）
      orderAmount: nursingItemDetail.price ? Number(nursingItemDetail.price) : 0,
      // 期望服务时间：补全时间格式为 yyyy-MM-dd HH:mm:ss（对应Java的Date格式）
      expectedServiceTime: serviceTime ? `${serviceTime} 00:00:00` : null,
      // 注：若用户需选择具体时分秒，可优化serviceTime的选择组件（如picker-mode="datetime"）
      remark:'',
      orderUserId:userInfo.userId,
      createTime:null,
      orderStatus:0,
      transactionStatus:0
      
    };

    // 3. 存储到页面数据中
    this.setData({
      selectedElderlyId,
      nursingItemDetail,
      serviceTime,
      selectedElderName, // 保存老人姓名
      orderForm // 保存组合结果，供后续提交使用
    });

    // 验证：打印数据确认是否正常接收
    console.log('接收的老人ID：', selectedElderlyId);
    console.log('接收的服务详情：', nursingItemDetail);
    console.log('接收的服务时间：', serviceTime);
    console.log('接收的老人姓名：', selectedElderName);
     // 验证：打印组合后的数据
     console.log('组合后的订单数据（对应后端实体）：', orderForm);
  
  },
  // 提交订单
onSubmit(){
  // 生成订单编号
  const orderNo = numberGeneration('DD');
  
  this.setData({
    'orderForm.orderNo': orderNo
  });
  
  console.log('组合后的订单数据（对应后端实体）：', this.data.orderForm);
  
  //新增订单
  request({
    url: `/orderManagement/orderManagement`, // 新增订单
    method: 'POST',
    data: this.data.orderForm // 添加这行，将 orderForm 作为请求体数据
  }).then(resp => {
    console.log('新增订单成功，后端返回：', resp);
    if(resp.data.code==200){
      this.setData({
        nursingItemDetail:resp.data.data
      })
    }

  }).catch(err => {
    // 获取用户信息请求失败处理
    console.error('新增订单失败：', err);
    wx.showToast({
      title: '新增订单失败，请重试',
      icon: 'none'
    });
  });



  // 通过 URL 参数传递订单编号
  wx.navigateTo({
    url: `/pages/my/affordorder/affordorder?orderNo=${orderNo}`,
  })
},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})